package org.example.flinketl.vo;

import java.math.BigDecimal;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

import org.hibernate.validator.constraints.Length;

import lombok.Data;
import lombok.ToString;

/**
 * 第三方交易
 */
@Data
@ToString
public class DsfMx implements Vo {
  /** 交易日期 */
  @Pattern(regexp = "(18|19|20)\\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)")
  String tran_date;
  /** 交易流水号 */
  String tran_log_no;
  /** 交易代码 */
  @Pattern(regexp = "\\d{6}")
  String tran_code;
  /** 渠道 */
  String channel_flg;
  /** 交易机构号 */
  String tran_org;
  /** 操作柜员号 */
  String tran_teller_no;
  /** 借贷方标识 */
  String dc_flag;

  /** 交易金额 */
  @NotNull
  BigDecimal tran_amt;
  /** 发起行行号 */
  String send_bank;
  /** 付款人开户行行号 */
  String payer_open_bank;
  /** 付款人账号 */
  @Length(min = 1)
  String payer_acct_no;
  /** 付款人名称 */
  @Length(min = 1)
  String payer_name;
  /** 收款人开户行行号 */
  String payee_open_bank;
  /** 收款人账号 */
  @Length(min = 1)
  String payee_acct_no;
  /** 收款人名称 */
  @Length(min = 1)
  String payee_name;
  /** 交易状态 */
  String tran_sts;
  /** 业务类型 */
  String busi_type;
  /** 业务种类 */
  String busi_sub_type;
  /** 数据日期 */
  String etl_dt;
  /** 证件号码 */
  String uid;

  public static String getTableName() {
    return "dm_v_tr_dsf_mx";
  }

  @Override
  public String getContentType() {
    return "dsf";
  }
}
